我有一些 Java 代码,其中 SQL 语句编写为 Java 字符串(请不要使用 OR/M 火焰战争,嵌入式 SQL 就是这样 - 不是我的决定)。
为了便于维护,我在几行代码中将 SQL 语句从语义上分解为几个串联的字符串。因此,而不是类似的东西:
String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4";
我有类似的东西:
String query = "SELECT FOO, BAR, BAZ" + " FROM ABC " + " WHERE BAR > 4 ";
这种风格使 SQL 更易于阅读和维护(恕我直言),尤其是对于较大的查询。例如,我可以将我的编辑器置于“覆盖”模式并相当容易地就地修改文本。
请注意,此问题泛化到 SQL 的特定示例之外。 使用任何垂直格式编写的任何代码,尤其是表格结构,都容易被漂亮的打印机破坏。
现在,一些项目成员使用 Eclipse 编辑器,当他们格式化整个源文件时,语义格式化经常被破坏。
有没有办法指示 Eclipse 在格式方面忽略某些源代码行?
我正在寻找类似于切换 Eclipse 格式化程序的特殊注释之类的东西。理想情况下,这样的注释可以配置为我们选择的任何内容,并且其他格式化程序也可以编程以尊重它:
// STOP-ECLIPSE-FORMATTING String query = "SELECT FOO, BAR, BAZ" + " FROM ABC " + " WHERE BAR > 4 "; // START-ECLIPSE-FORMATTING
显然,一个“解决方案”是让我们的团队成员标准化一些外部格式化程序,如Jalopy或JIndent,但这不是这个问题的目的(也不是我对这个项目的决定):我正在专门寻找一种方法来临时避免使用 Eclipse 格式化程序。
理想情况下,一个解决方案将允许我为 Eclipse 格式化程序插入指令, 而无需使用 Eclipse 的团队成员进行任何 IDE 重新配置 (除了可能选择与格式化程序无关的命令注释:STOP-ECLIPSE-FORMATTING‘ STOP-FORMATTING)。
STOP-ECLIPSE-FORMATTING
STOP-FORMATTING
Eclipse 3.6 允许您通过放置特殊注释来关闭格式设置,例如
// @formatter:off ... // @formatter:on
必须在 Eclipse 首选项中“打开”开/关功能:Java>Code Style>Formatter. 点击Edit, Off/On Tags, 启用Enable Off/On tags。
也可以更改首选项中的魔术字符串 —在此处查看 Eclipse 3.6 文档。
更多信息
Java > Code Style > Formatter > Edit > Off/On Tags
此首选项允许您定义一个标签来禁用和一个标签来启用格式化程序(请参阅格式化程序配置文件中的关闭/打开标签选项卡):
您还需要启用以下标志Java Formatting